Function Default Parameters

The Evolution of Handling Missing Arguments in JavaScript

3. The Safe & Verbose Way

使用 typeof 與三元運算子。最古老也最嚴謹的防呆寫法,但代碼非常冗長。

function adder3(numOne, numTwo) {
  numTwo = typeof numTwo !== 'undefined' ? numTwo : 5;
  console.log("number 1: " + numOne);
  console.log("number 2: " + numTwo);
}
等待執行...

2. The Logical OR (||)

利用邏輯或 (||) 的短路特性。以前業界最愛用,但遇到傳入值為 0 的時候會發生災難。

function adder2(numOne, numTwo) {
  numTwo = numTwo || 5;
  console.log("number 1: " + numOne);
  console.log("number 2: " + numTwo);
}
等待執行...

1. The Modern ES6 Way

ES6 (ECMAScript 2015) 引入的現代標準寫法。語法最乾淨,且沒有邏輯漏洞。

function adder1(numOne, numTwo = 5) {
  
  console.log("number 1: " + numOne);
  console.log("number 2: " + numTwo);
}
等待執行...